package com.ctg.itrdc.sysmgr.permission.core.dao;

import java.util.List;
import java.util.Map;

import com.ctg.itrdc.sysmgr.permission.core.dto.CommonRegionDTO;
import com.ctg.itrdc.sysmgr.permission.core.dto.FuncCompDTO;
import com.ctg.itrdc.sysmgr.permission.core.dto.FuncMenuDTO;
import com.ctg.itrdc.sysmgr.permission.core.dto.OrganizationDTO;
import com.ctg.itrdc.sysmgr.permission.core.dto.PoliticalLocationDTO;
import com.ctg.itrdc.sysmgr.permission.core.dto.StaffDTO;
import com.ctg.itrdc.sysmgr.permission.core.dto.SystemPostDTO;
import com.ctg.itrdc.sysmgr.permission.core.dto.SystemRolesDTO;
import com.ctg.itrdc.sysmgr.permission.core.dto.SystemUserDTO;

public interface IPermissionDao {

	List<String> getRoleCodes(Long sysUserId, Long sysPostId);

	List<String> getPermissions(Long sysUserId, Long sysPostId);

	Map<String, Object> getUserByUsername(String userName);

	void updateLoginNum(Long sysUserId);

	boolean existRelation(Long sysUserId, Long sysPostId);

	List<Map<String, Object>> getPostByUId(Long sysUserId);
	
	List<Map<String, Object>> getRoleByUId(Long sysUserId);

	List<Map<String, Object>> selectMenus(Long sysUserId, Long sysPostId, String sysCode);

	List<Map<String, Object>> selectCompList(Long sysUserId, Long sysPostId, String sysCode);

	Map<String, Object> getOrgById(Long orgId);

	Map<String, Object> getStaffById(Long staffId);

	Map<String, Object> getPostById(Long sysPostId);

	Map<String, Object> getUserById(Long sysUserId);

	void updatePassword(Long sysUserId, String password);

	List<Map<String, Object>> getStaffNameById(Long staffId);

	List<Map<String, Object>> getRzOrgIdByStaffId(Long staffId);

	List<Map<String, Object>> getRzOrgCodeById(Long rzOrgId);
	
	List<Map<String, Object>> getOrgByUserIdAndPostId(Long userId, Long postId);
	
	List<Map<String, Object>> getRegionNameById(Long comRegionId);

	List<Map<String, Object>> getParentRegion(Long commonRegionId);

	List<Map<String, Object>> getPoliticalLocation(Long regionId, String locType);

	SystemUserDTO getUserBySysUserCode(String sysUserCode);

	List<SystemPostDTO> getPostByUserId(Long sysUserId);

	List<SystemRolesDTO> getRoleByUserId(Long sysUserId);

	OrganizationDTO getOrganizationById(Long orgId);

	StaffDTO getStaffByStaffId(Long staffId);

	SystemPostDTO getPostByPostId(Long sysPostId);

	SystemUserDTO getUserByUserId(Long sysUserId);

	CommonRegionDTO getParentRegionById(Long commonRegionId);

	List<OrganizationDTO> getOrganizationByUserIdAndPostId(Long userId,
			Long postId);

	List<FuncMenuDTO> selectMenuList(Long sysUserId, Long sysPostId,
			String sysCode);

	List<FuncCompDTO> getCompList(Long sysUserId, Long sysPostId, String sysCode);

	String getStaffNameByStaffId(Long staffId);

	Long getRzOrgIdBystaffId(Long staffId);

	String getRzOrgCodeByOrgId(Long rzOrgId);

	String getRegionNameByRegionId(Long comRegionId);

	PoliticalLocationDTO getPoliticalLocationByRegionId(Long regionId);
}
